home *** CD-ROM | disk | FTP | other *** search
/ American Osteopathic Ass…tion Yearbook 2005 & 2006 / American Osteopathic Association Yearbook 2005 & 2006.iso / mac / app / sre_constants.pyc (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2004-07-22  |  7.7 KB  |  223 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.3)
  3.  
  4. '''Internal support module for sre'''
  5. MAGIC = 20030419
  6. MAXREPEAT = 65535
  7.  
  8. class error(Exception):
  9.     pass
  10.  
  11. FAILURE = 'failure'
  12. SUCCESS = 'success'
  13. ANY = 'any'
  14. ANY_ALL = 'any_all'
  15. ASSERT = 'assert'
  16. ASSERT_NOT = 'assert_not'
  17. AT = 'at'
  18. BIGCHARSET = 'bigcharset'
  19. BRANCH = 'branch'
  20. CALL = 'call'
  21. CATEGORY = 'category'
  22. CHARSET = 'charset'
  23. GROUPREF = 'groupref'
  24. GROUPREF_IGNORE = 'groupref_ignore'
  25. IN = 'in'
  26. IN_IGNORE = 'in_ignore'
  27. INFO = 'info'
  28. JUMP = 'jump'
  29. LITERAL = 'literal'
  30. LITERAL_IGNORE = 'literal_ignore'
  31. MARK = 'mark'
  32. MAX_REPEAT = 'max_repeat'
  33. MAX_UNTIL = 'max_until'
  34. MIN_REPEAT = 'min_repeat'
  35. MIN_UNTIL = 'min_until'
  36. NEGATE = 'negate'
  37. NOT_LITERAL = 'not_literal'
  38. NOT_LITERAL_IGNORE = 'not_literal_ignore'
  39. RANGE = 'range'
  40. REPEAT = 'repeat'
  41. REPEAT_ONE = 'repeat_one'
  42. SUBPATTERN = 'subpattern'
  43. MIN_REPEAT_ONE = 'min_repeat_one'
  44. AT_BEGINNING = 'at_beginning'
  45. AT_BEGINNING_LINE = 'at_beginning_line'
  46. AT_BEGINNING_STRING = 'at_beginning_string'
  47. AT_BOUNDARY = 'at_boundary'
  48. AT_NON_BOUNDARY = 'at_non_boundary'
  49. AT_END = 'at_end'
  50. AT_END_LINE = 'at_end_line'
  51. AT_END_STRING = 'at_end_string'
  52. AT_LOC_BOUNDARY = 'at_loc_boundary'
  53. AT_LOC_NON_BOUNDARY = 'at_loc_non_boundary'
  54. AT_UNI_BOUNDARY = 'at_uni_boundary'
  55. AT_UNI_NON_BOUNDARY = 'at_uni_non_boundary'
  56. CATEGORY_DIGIT = 'category_digit'
  57. CATEGORY_NOT_DIGIT = 'category_not_digit'
  58. CATEGORY_SPACE = 'category_space'
  59. CATEGORY_NOT_SPACE = 'category_not_space'
  60. CATEGORY_WORD = 'category_word'
  61. CATEGORY_NOT_WORD = 'category_not_word'
  62. CATEGORY_LINEBREAK = 'category_linebreak'
  63. CATEGORY_NOT_LINEBREAK = 'category_not_linebreak'
  64. CATEGORY_LOC_WORD = 'category_loc_word'
  65. CATEGORY_LOC_NOT_WORD = 'category_loc_not_word'
  66. CATEGORY_UNI_DIGIT = 'category_uni_digit'
  67. CATEGORY_UNI_NOT_DIGIT = 'category_uni_not_digit'
  68. CATEGORY_UNI_SPACE = 'category_uni_space'
  69. CATEGORY_UNI_NOT_SPACE = 'category_uni_not_space'
  70. CATEGORY_UNI_WORD = 'category_uni_word'
  71. CATEGORY_UNI_NOT_WORD = 'category_uni_not_word'
  72. CATEGORY_UNI_LINEBREAK = 'category_uni_linebreak'
  73. CATEGORY_UNI_NOT_LINEBREAK = 'category_uni_not_linebreak'
  74. OPCODES = [
  75.     FAILURE,
  76.     SUCCESS,
  77.     ANY,
  78.     ANY_ALL,
  79.     ASSERT,
  80.     ASSERT_NOT,
  81.     AT,
  82.     BRANCH,
  83.     CALL,
  84.     CATEGORY,
  85.     CHARSET,
  86.     BIGCHARSET,
  87.     GROUPREF,
  88.     GROUPREF_IGNORE,
  89.     IN,
  90.     IN_IGNORE,
  91.     INFO,
  92.     JUMP,
  93.     LITERAL,
  94.     LITERAL_IGNORE,
  95.     MARK,
  96.     MAX_UNTIL,
  97.     MIN_UNTIL,
  98.     NOT_LITERAL,
  99.     NOT_LITERAL_IGNORE,
  100.     NEGATE,
  101.     RANGE,
  102.     REPEAT,
  103.     REPEAT_ONE,
  104.     SUBPATTERN,
  105.     MIN_REPEAT_ONE]
  106. ATCODES = [
  107.     AT_BEGINNING,
  108.     AT_BEGINNING_LINE,
  109.     AT_BEGINNING_STRING,
  110.     AT_BOUNDARY,
  111.     AT_NON_BOUNDARY,
  112.     AT_END,
  113.     AT_END_LINE,
  114.     AT_END_STRING,
  115.     AT_LOC_BOUNDARY,
  116.     AT_LOC_NON_BOUNDARY,
  117.     AT_UNI_BOUNDARY,
  118.     AT_UNI_NON_BOUNDARY]
  119. CHCODES = [
  120.     CATEGORY_DIGIT,
  121.     CATEGORY_NOT_DIGIT,
  122.     CATEGORY_SPACE,
  123.     CATEGORY_NOT_SPACE,
  124.     CATEGORY_WORD,
  125.     CATEGORY_NOT_WORD,
  126.     CATEGORY_LINEBREAK,
  127.     CATEGORY_NOT_LINEBREAK,
  128.     CATEGORY_LOC_WORD,
  129.     CATEGORY_LOC_NOT_WORD,
  130.     CATEGORY_UNI_DIGIT,
  131.     CATEGORY_UNI_NOT_DIGIT,
  132.     CATEGORY_UNI_SPACE,
  133.     CATEGORY_UNI_NOT_SPACE,
  134.     CATEGORY_UNI_WORD,
  135.     CATEGORY_UNI_NOT_WORD,
  136.     CATEGORY_UNI_LINEBREAK,
  137.     CATEGORY_UNI_NOT_LINEBREAK]
  138.  
  139. def makedict(list):
  140.     d = { }
  141.     i = 0
  142.     for item in list:
  143.         d[item] = i
  144.         i = i + 1
  145.     
  146.     return d
  147.  
  148. OPCODES = makedict(OPCODES)
  149. ATCODES = makedict(ATCODES)
  150. CHCODES = makedict(CHCODES)
  151. OP_IGNORE = {
  152.     GROUPREF: GROUPREF_IGNORE,
  153.     IN: IN_IGNORE,
  154.     LITERAL: LITERAL_IGNORE,
  155.     NOT_LITERAL: NOT_LITERAL_IGNORE }
  156. AT_MULTILINE = {
  157.     AT_BEGINNING: AT_BEGINNING_LINE,
  158.     AT_END: AT_END_LINE }
  159. AT_LOCALE = {
  160.     AT_BOUNDARY: AT_LOC_BOUNDARY,
  161.     AT_NON_BOUNDARY: AT_LOC_NON_BOUNDARY }
  162. AT_UNICODE = {
  163.     AT_BOUNDARY: AT_UNI_BOUNDARY,
  164.     AT_NON_BOUNDARY: AT_UNI_NON_BOUNDARY }
  165. CH_LOCALE = {
  166.     CATEGORY_DIGIT: CATEGORY_DIGIT,
  167.     CATEGORY_NOT_DIGIT: CATEGORY_NOT_DIGIT,
  168.     CATEGORY_SPACE: CATEGORY_SPACE,
  169.     CATEGORY_NOT_SPACE: CATEGORY_NOT_SPACE,
  170.     CATEGORY_WORD: CATEGORY_LOC_WORD,
  171.     CATEGORY_NOT_WORD: CATEGORY_LOC_NOT_WORD,
  172.     CATEGORY_LINEBREAK: CATEGORY_LINEBREAK,
  173.     CATEGORY_NOT_LINEBREAK: CATEGORY_NOT_LINEBREAK }
  174. CH_UNICODE = {
  175.     CATEGORY_DIGIT: CATEGORY_UNI_DIGIT,
  176.     CATEGORY_NOT_DIGIT: CATEGORY_UNI_NOT_DIGIT,
  177.     CATEGORY_SPACE: CATEGORY_UNI_SPACE,
  178.     CATEGORY_NOT_SPACE: CATEGORY_UNI_NOT_SPACE,
  179.     CATEGORY_WORD: CATEGORY_UNI_WORD,
  180.     CATEGORY_NOT_WORD: CATEGORY_UNI_NOT_WORD,
  181.     CATEGORY_LINEBREAK: CATEGORY_UNI_LINEBREAK,
  182.     CATEGORY_NOT_LINEBREAK: CATEGORY_UNI_NOT_LINEBREAK }
  183. SRE_FLAG_TEMPLATE = 1
  184. SRE_FLAG_IGNORECASE = 2
  185. SRE_FLAG_LOCALE = 4
  186. SRE_FLAG_MULTILINE = 8
  187. SRE_FLAG_DOTALL = 16
  188. SRE_FLAG_UNICODE = 32
  189. SRE_FLAG_VERBOSE = 64
  190. SRE_FLAG_DEBUG = 128
  191. SRE_INFO_PREFIX = 1
  192. SRE_INFO_LITERAL = 2
  193. SRE_INFO_CHARSET = 4
  194. if __name__ == '__main__':
  195.     import string
  196.     
  197.     def dump(f, d, prefix):
  198.         items = d.items()
  199.         items.sort((lambda a, b: cmp(a[1], b[1])))
  200.         for k, v in items:
  201.             f.write('#define %s_%s %s\n' % (prefix, string.upper(k), v))
  202.         
  203.  
  204.     f = open('sre_constants.h', 'w')
  205.     f.write("/*\n * Secret Labs' Regular Expression Engine\n *\n * regular expression matching engine\n *\n * NOTE: This file is generated by sre_constants.py.  If you need\n * to change anything in here, edit sre_constants.py and run it.\n *\n * Copyright (c) 1997-2001 by Secret Labs AB.  All rights reserved.\n *\n * See the _sre.c file for information on usage and redistribution.\n */\n\n")
  206.     f.write('#define SRE_MAGIC %d\n' % MAGIC)
  207.     dump(f, OPCODES, 'SRE_OP')
  208.     dump(f, ATCODES, 'SRE')
  209.     dump(f, CHCODES, 'SRE')
  210.     f.write('#define SRE_FLAG_TEMPLATE %d\n' % SRE_FLAG_TEMPLATE)
  211.     f.write('#define SRE_FLAG_IGNORECASE %d\n' % SRE_FLAG_IGNORECASE)
  212.     f.write('#define SRE_FLAG_LOCALE %d\n' % SRE_FLAG_LOCALE)
  213.     f.write('#define SRE_FLAG_MULTILINE %d\n' % SRE_FLAG_MULTILINE)
  214.     f.write('#define SRE_FLAG_DOTALL %d\n' % SRE_FLAG_DOTALL)
  215.     f.write('#define SRE_FLAG_UNICODE %d\n' % SRE_FLAG_UNICODE)
  216.     f.write('#define SRE_FLAG_VERBOSE %d\n' % SRE_FLAG_VERBOSE)
  217.     f.write('#define SRE_INFO_PREFIX %d\n' % SRE_INFO_PREFIX)
  218.     f.write('#define SRE_INFO_LITERAL %d\n' % SRE_INFO_LITERAL)
  219.     f.write('#define SRE_INFO_CHARSET %d\n' % SRE_INFO_CHARSET)
  220.     f.close()
  221.     print 'done'
  222.  
  223.